package com.xxin.core.resp;

import com.xxin.core.constants.ResultCode;
import lombok.Builder;
import lombok.Data;

/**
 * @author lvjx
 * @description 统一封装返回结果集
 * @date 2024/9/6 14:43
 */
@Data
@Builder
public class Result<T> {
	private String code;
	private String msg;
	private T data;
	
	/**
	 * 请求成功，携带返回JSON数据
	 */
	public static <T> Result<T> ok(T data){
		return Result.<T>builder()
				       .code(ResultCode.OK)
				       .data(data)
				       .build();
	}
	
	/**
	 * 请求成功，只有状态码信息 200
	 */
	public static <T> Result<T> ok(){
		return Result.<T>builder()
				       .code(ResultCode.OK)
				       .build();
	}
	
	/**
	 * 请求失败,只有状态码信息 0
	 */
	public static <T> Result<T> error(){
		return Result.<T>builder()
				       .code(ResultCode.ERROR)
				       .build();
	}
	
	/**
	 * 请求失败，携带返回JSON数据
	 */
	public static <T> Result<T> error(String msg){
		return Result.<T>builder()
				       .code(ResultCode.ERROR)
				       .msg(msg)
				       .build();
	}
}
